package com.financing.platform.service;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.financing.platform.dto.FaUserDTO;
import com.financing.platform.vo.FaUserVO;

/**
 * 
* @ClassName: IFaUserService 
* @Description: FA审核 
* @author chenming 
* @date 2014年7月31日 下午1:44:47 
*
 */
/**
 * @author lisu
 *
 */
public interface IFaUserService extends IBaseService {
 
	/**
	 * 
	* @Title: queryAllFaUserInfo 
	* @Description: 查询所有满足条件的FA用户
	* @param   faUserDTO
	* @return List<FaUserDTO>   
	* @throws
	 */
	public List<FaUserDTO> queryAllFaUserInfo(FaUserDTO faUserDTO);
	
	/**
	 * 
	* @Title: queryAllFaUserInfo 
	* @Description: 查询所有满足条件的FA用户
	* @param   faUserDTO
	* @return List<FaUserDTO>   
	* @throws
	 */
	public List<FaUserDTO> queryAllShopFaUserInfo(FaUserDTO faUserDTO);
	
	/**
	 * @throws SQLException 
	 * 
	 * @Title: queryAllFaUserInfoCount
	 * @Description: 查询所有满足条件的FA用户总数 
	 * @param @param faUserDTO
	 * @param @return   
	 * @return int   
	 * @throws
	 */
	public int queryAllFaUserInfoCount(FaUserDTO faUserDTO) throws SQLException;
	
	/**
	 * @throws SQLException 
	 * 
	 * @Title: queryAllFaUserInfoCount
	 * @Description: 查询所有满足条件的FA用户总数 
	 * @param @param faUserDTO
	 * @param @return   
	 * @return int   
	 * @throws
	 */
	public int queryAllShopFaUserInfoCount(FaUserDTO faUserDTO) throws SQLException;
	
	/**
	 * 
	* @Title: queryFaUserInfo 
	* @Description:  查询单个FA用户
	* @param   faUserDTO
	* @return FaUserDTO   
	* @throws
	 */
	public FaUserDTO queryFaUserInfo(FaUserDTO faUserDTO);
	
	public FaUserDTO queryFaUserInfoView(FaUserDTO faUserDTO) throws SQLException;
	
	/**
	 * @throws SQLException 
	 * 
	* @Title: updateFaUserInfo 
	* @Description: 更新FA用户
	* @param   faUserDTO
	* @return FaUserDTO   
	* @throws
	 */
	public int updateFaUserInfo(FaUserDTO faUserDTO) throws Exception;
	
	/**
	 * shop认证状态修改
	 * @param faUserDTO
	 * @return
	 * @throws Exception
	 */
	public int updateFaUserInfoShop(FaUserDTO faUserDTO) throws Exception;
	
	
	/**
	 * 
	 * @Title: updateFaUserCert
	 * @Description: 更新FA证书 
	 * @param @param faUserDTO
	 * @param @return
	 * @param @throws SQLException   
	 * @return int   
	 * @throws
	 */
	public int updateFaUserCert(FaUserDTO faUserDTO) throws SQLException;
	
	/**
	 * 
	 * @Title: updateFaUserADInfo
	 * @Description: 更新FA广告来源审核信息 
	 * @param @param faUserDTO
	 * @param @return
	 * @param @throws SQLException   
	 * @return int   
	 * @throws
	 */
	public int updateFaUserADInfo(FaUserDTO faUserDTO) throws SQLException;
	
	/**
	 * 
	* @Title: queryFaUserListAuthPass 
	* @Description: 查询 用户邀请人数及认证通过的
	* @param   faUserDTO
	* @return List<FaUserDTO>   
	* @throws
	 */
	public List<FaUserVO> queryFaUserListAuthPass(FaUserDTO faUserDTO) throws SQLException;
	/**
	 * 
	* @Title: queryFaUserListAuthPass 
	* @Description: 查询 单个用户邀请人数及认证通过的
	* @param   faUserDTO
	* @return List<FaUserDTO>   
	* @throws
	 */
	public List<FaUserDTO> querySingleFaUserListAuthPass(FaUserDTO faUserDTO) throws SQLException;
	/**
	 * @throws SQLException 
	 * 
	 * @Title: queryFaUserListAuthPassCount
	 * @Description:查询 用户邀请人数及认证通过的总数 
	 * @param @param faUserDTO
	 * @param @return   
	 * @return int   
	 * @throws
	 */
	public int queryFaUserListAuthPassCount(FaUserDTO faUserDTO) throws SQLException;
	
	/**
	 * @throws SQLException 
	 * 
	 * @Title: queryFaUserListAuthPassCount
	 * @Description:查询 单个用户邀请人数及认证通过的总数 
	 * @param @param faUserDTO
	 * @param @return   
	 * @return int   
	 * @throws
	 */
	public int querySingleFaUserListAuthPassCount(FaUserDTO faUserDTO) throws SQLException;

	/**
	 * 在回访时候 修改用户信息
	 * @param map
	 */
	public void updateFaUserForVisit(Map<String, Object> map) throws SQLException;

	/**
	 * 获取子类用户ID
	 * @param systemUserId
	 * @return
	 * @throws SQLException
	 */
	public List<String> queryFaUserSubUserId(String systemUserId) throws SQLException;

	public List<String> queryFaUserSubUserId(String systemUserId,String job) throws SQLException;

	public FaUserDTO getFaUserView(FaUserDTO fauserDTO)throws SQLException;

	public List<String> queryActSource() throws SQLException;

	public List<FaUserDTO> queryAllFaUserInfoBasic(FaUserDTO faUserDTO) throws SQLException;

	public  String queryFrontLicaishiManagerUser(String id)throws SQLException;

	public int queryAllFaUserSystemRateCount(FaUserDTO faUserDTO)throws SQLException;

	public List<FaUserDTO> queryAllFaUserSystemRate(FaUserDTO faUserDTO)throws SQLException;

	public void updateFaUserSystemRate(FaUserDTO faUserDTO)throws SQLException;
	/**
	 * 
	* @Title:  
	* @Description: 查询没有服务顾问的用户  
	* date  某段时间后
	* @throws
	 */
	public List<FaUserDTO> queryFaUserNomanager(String date)throws SQLException;
}